USE [Bases2]
GO
/****** Object:  StoredProcedure [dbo].[ValidarUsuarioPermiso]    Script Date: 10/11/2011 21:33:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--[ValidarUsuarioPermiso] 'admin', 'GestionUsuarios.jsp'

CREATE PROCEDURE [dbo].[ValidarUsuarioPermiso] @Login VARCHAR(50), @Accion VARCHAR(50)
As

BEGIN
DECLARE @Resultado INT
SET @Resultado = 0

--VALIDAR USUARIO Y PASSWORD
SELECT @Resultado = COUNT(1)
FROM USUARIO u
WHERE u.nombre = @Login
--AND u.password = @Password

IF @Resultado = 1
	BEGIN
		SELECT @Resultado = COUNT(1)
		FROM 
		USUARIO u
		INNER JOIN TIPO_USUARIO tu ON u.id_tipo_usuario = tu.id_tipo_usuario
		INNER JOIN PERMISOS_TIPO_USUARIO ptu ON tu.id_tipo_usuario = ptu.id_tipo_usuario
		INNER JOIN PERMISOS pe ON pe.id_permisos = ptu.id_permisos
		WHERE u.nombre = @Login
		AND (pe.nombre = @Accion OR pe.menu = @Accion)
		
		IF @Resultado >= 1
		BEGIN
			SELECT 1, 'Existoso'
		END
		ELSE
		BEGIN
			SELECT 0, 'El usuario [' + @Login + '] no tiene permiso para ejecutar esta accion'
		END
	END
ELSE
	BEGIN
		IF @Resultado = 0
			BEGIN
				SELECT 0, 'Usuario/Password incorrecto'
			END
		IF @Resultado > 1
			BEGIN
				SELECT 0, 'Error en la consulta'
			END
	END
END
